Csrf 是跨站请求伪造,其利用的是浏览器中 Cookie 直接用作某网站认证身份的不安全性。
以下是一个不恰当但足以表明 csrf 原理的例子:
用户 Bob 登录某银行网站,该网站通过 Cookie 进行登录态验证。
黑客 Wally 知道该网站的漏洞,故制作了一个危险网站,内部有如下 html 代码:
<img src="http://www.xxxbank.com?tobankid=wally&money=1000">
用户 Bob 在仍持有银行 Cookie 的前提下,不小心访问了危险网站。
加载图片将自动发出 get 请求,因为持有 Cookie,所以银行认为这次 get 请求是处于登录态的 Bob 发出的合法请求,导致每次访问后 Bob 都在不知情的情况下向 wally 转账 1000 块。
Csrf 能成功是因为 Cookie 直接用于身份验证的不安全性。防范 Csrf 的几个办法: